package com.dayu.design.创建型.原型模式;

import java.util.concurrent.ConcurrentHashMap;

/**
 * 原型模式是用于创建重复的对象，同时又能保证性能。 这种模式是实现了一个原型接口，
 * 该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时，则采用这种模式。
 * @author dayu
 * @create 2023-12-03 22:14
 */
public class ShapeCache {
    private static ConcurrentHashMap<String,Sculpt> hashMap=new ConcurrentHashMap();

    public static Sculpt getSculpt(String str) {
        Sculpt sculpt = hashMap.get(str);
        return sculpt;
    }

    // 对每种形状都运行数据库查询，并创建该形状  
    // hashMap.put(shapeKey, shape);  
    // 例如，我们要添加三种形状  
    public static void loadCache() {
        Circle circle = new Circle();
        hashMap.put("1", circle);

        Square square = new Square();
        hashMap.put("2", square);

        Rectangle rectangle = new Rectangle();
        hashMap.put("3", rectangle);
    }
}
